package controle.cadastro;

import java.util.List;

import modelo.Usuario;
import controle.excecao.IdExistenteException;
import controle.excecao.IdNaoEncontradoException;
import controle.excecao.NomeInvalidoException;
import controle.excecao.SenhaInvalidoException;
import controle.interfacePercistencia.InterfaceRepositorioUsuario;

public class CadastroUsuario {
	
	InterfaceRepositorioUsuario repositorio;
	
	public CadastroUsuario(InterfaceRepositorioUsuario repositorio) {
		this.repositorio = repositorio;
	}
	
	public void incluirUsuario(Usuario usuario) throws NomeInvalidoException, SenhaInvalidoException, IdExistenteException{
		if(usuario.getNome().length() == 0){
			throw new NomeInvalidoException();
		}else if(usuario.getSenha().length() < 6){
			throw new SenhaInvalidoException();
		}else{
			repositorio.incluir(usuario);
		}
		
		
	}
	
	public void excuirUsuario(String id) throws IdNaoEncontradoException{
		repositorio.excluir(id);
	}
	
	public void alterarSenha(Usuario usuario) throws SenhaInvalidoException, IdNaoEncontradoException{
		if(usuario.getSenha().length() < 6){
			throw new SenhaInvalidoException();
		}else{
			repositorio.atualizar(usuario);
		}
	}
	
	public List<Usuario> listarUauario(){
		return repositorio.listar();
	}
	
	public Usuario pequisarUsuario(String id) throws IdNaoEncontradoException{
		return repositorio.pesquisarDado(id);
	}

}
